Relay apparatus, system and method, and storage medium

ABSTRACT

A system enables information transmission between a server which serves information by its own communication format and a client which receives service on a general network, with an efficient and simple structure. A conversion server  101  receives a video transmission request message from a client  103  in the HTTP protocol, the conversion server  101  converts the message into a message of a format of a server  102 , and transmits the converted message to the server  102 . Then, the conversion server  101  returns video data transferred from the server  102  to the client  103  in the HTTP protocol.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to a relay apparatus, system andmethod and storage medium, and more particularly, to a relay apparatus,system and method and storage medium for information services by aserver on a network to a client.

[0002] With high-speed and wide area Internet and Intranet environment,network application programs (application programs which run on acomputer network as a platform), which conventionally handled only textdata, handle multimedia data such as video and audio data having morecomplicated structure and requiring a larger capacity.

[0003] In this progress, the assignee of the present invention hasproposed a network application program for providing a user with a videoimage obtained by a video recorder or video camera as a still image ormoving image from a server program located at a remote place via anetwork.

[0004] Hereinafter, the above network application program will bereferred to as a “video delivery system”.

[0005] On the other hand, as World Wide Web browsers (hereinafter simplyreferred to as “Web browsers” or “browsers”) such as Netscape Navigator(by Netscape Communications Corporation) and Internet Explorer (byMicrosoft Corporation) became popular, the computer network, that hasbeen utilized as conventional communication means only for E-mail, newsservice and FTP (File Transfer Protocol) and the like, is developing asthe field of more various activities such as collection of informationand cooperative shopping.

[0006] Accordingly, the Web browsers have been improved so as to providenot only multimedia information display but also a general userinterface for various purposes. The introduction of HTML (HypertextMarkup Language), HTTP (Hypertext Transfer Protocol), JavaScript, Javaand the like and rapid improvement of their functions show thistendency.

[0007] The above-described development of the Web browsers has produceda need to utilize a video delivery system in the Web system by a Webbrowser.

[0008] However, the video delivery system proposed by the presentassignee merely uses a special-purpose client application program(referred to as a “video display client”). The special-purpose videodisplay client is started from a Web browser. Accordingly, it is notintegrated with the Web browser.

[0009] Further, it is possible to seemingly incorporate the above videodisplay client in the Web browser by using a technique such as Plug-inmodule. However, the video display client is still an independentprogram in the Web browser, therefore, the high freedom of design ownedby the Web browser cannot be utilized. From a home page designer'sstandpoint, even look & feel and user interface of the video clientshould be changed in accordance with his/her preference or purpose.However, this need is not satisfied.

[0010] From the above-described situation, there is a need for a videodisplay client integrated with a Web browser, which can be used by aWeb-browser extensible language such as Java (by Sun Microsystems, Inc.)or JavaScript, or generated by using such language.

[0011] However, to satisfy this requirement, it is necessary to solvethe following problems:

[0012] 1. Absorption of difference between communication methods

[0013] 2. Prevention of reduction in execution efficiency

[0014] 3. Absorption of difference in video delivery format

[0015] Hereinbelow, these problems will be described.

[0016] <1. Absorption of difference between communication methods>

[0017] The basic operation of a Web browser is to transfer a fileacquisition request message to a Web server, and to display datareceived as a reply to the request, on the premise that the data is sentin 1:1 correspondence with the request from the Web browser (client).Further, the Web browser must establish a communication path(hereinafter referred to as a “connection”) for each request to the Webserver.

[0018] In the video delivery system, a server and a client firstestablish a connection therebetween, and then video information istransmitted in a one-way manner from the server. To remove thisdifference between these two communication methods as above, means formediating from one communication method to the other communicationmethod is required.

[0019] <2. Prevention of reduction in execution efficiency>

[0020] If the video display client (Web-version video client) isintegrated with a Web browser, the execution efficiency of the videodisplay function and other functions will be reduced in comparison withthe special-purpose video display client.

[0021] In use of the special-purpose video client, it is possible tospecify the client in correspondence with the target data structure anda video delivery protocol and to optimize the operation of the clientfor the purpose. On the other hand, in use of the Web-version client,general data processing and data display functions provided by the Webbrowser must be used. Nevertheless, the Web-version client will beutilized by more users than those of the special-purpose client, sincethe users can use the Web-version client without labor of download andinstallation and therefore the Web-version client can be easily used incomparison with the special-purpose client. However, the Web-versionclient with low performance might lose the reputation of the videodelivery system. For this reason, means for preventing the reduction inexecution efficiency must be introduced.

[0022] <3. Absorption of difference in video delivery format>

[0023] Preferably, the above requirements 1 and 2 should be satisfied asrequirements to the Web-version video client, and further, theWeb-version video client should be independent of specific videodelivery system and video delivery method. In the Web-version videoclient using Java or JavaScript, as a viewer (a video display portion)is realized as a common user interface on the Web browser, videoinformation should be displayed regardless of the difference in type ofserver (video server) which delivers the video image, as normal imagedata can be displayed regardless of its data format such as GIF andJPEG. To meet this requirement, it is necessary to provide means forabsorbing the difference in video delivery format.

SUMMARY OF THE INVENTION

[0024] The present invention has been made in consideration of the abovesituation, and has its object to provide a relay apparatus, system andmethod and storage medium to solve the all or at least one of the aboveproblems and enable information transmission between a server whichserves information in its own communication format and a client whichuses the information service on a general network, with an efficient andsimple construction.

[0025] The foregoing object is attained by providing a relay apparatusfor transferring information from at least one server to at least oneclient via a network, the server performing stream information servicein its own information transmission format, the apparatus comprising:first communication means for performing communication with the clientin a communication method in correspondence with the client; secondcommunication means for performing communication with the server in acommunication method in correspondence with the server; first conversionmeans for converting a request message to the server, received via thefirst communication means from the client, to a request message for theserver; and second conversion means for converting information, receivedvia the second communication means from the server, to information in aformat for the client.

[0026] Other features and advantages of the present invention will beapparent from the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame name or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The accompanying drawings, which are incorporated in andconstitute a part of the specification, illustrate embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention.

[0028]FIG. 1 is a block diagram showing the construction of a systemaccording to a first embodiment of the present invention;

[0029]FIG. 2 is a schematic diagram showing the connection relation ofapparatuses in the system of the first embodiment;

[0030]FIG. 3 is a block diagram explaining the operation of sessionstarting processing according to the first embodiment;

[0031]FIG. 4 is a block diagram explaining the operation of sessionterminating processing according to the first embodiment;

[0032]FIG. 5 is a block diagram explaining the operation of videoacquisition processing according to the first embodiment;

[0033]FIG. 6 is a block diagram showing the construction of the systemaccording to a second embodiment of the present invention;

[0034]FIG. 7 is a flowchart showing the operation procedure of thesession starting processing according to the second embodiment;

[0035]FIG. 8 is a flowchart showing the operation of the sessionterminating processing according to the second embodiment;

[0036]FIG. 9 is a flowchart showing the operation of the videoacquisition processing according to the second embodiment;

[0037]FIG. 10 is a schematic diagram showing the connection relation ofthe apparatuses in the system according to the second embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0038] Hereinbelow, embodiments of the present invention will now bedescribed in detail in accordance with the accompanying drawings.

[0039] First, prior to description of the details, the outline ofembodiments will be described.

[0040] In the embodiments, the above-described three problems are solvedby preparing the following function means:

[0041] substitutional execution means for executing a function of aspecial-purpose client;

[0042] efficiency promotion means for efficiently enabling thesubstitutional execution means; and

[0043] delivery-method switching & execution means in correspondencewith plural types of video delivery methods.

[0044] The above means will be described in detail below.

[0045] <Substitutional execution means>

[0046] The substitutional execution means includes messagetransmission/reception means for transmitting/receiving a message fromanother program, message interpretation means for interpreting themessage, and connection management means for managing connection with aclient.

[0047] <Efficiency promotion means>

[0048] The efficiency promotion means includes video delivery means fordelivering video data obtained from a video server to a plurality ofclients, and information delivery means for delivering variousinformation such as server status obtained from a video server to aplurality of clients.

[0049] <Delivery-method switching & execution means>

[0050] The delivery method switching & execution means includesdelivery-method switching means for switching the method fortransmitting a request message and a reply in accordance with the videoserver, and delivery-method execution means for executing issuance of arequest message and a reply in accordance with a video server.

[0051] <First Embodiment>

[0052] Hereinbelow, an example to realize the above respective meanswill be described as a first embodiment.

[0053] note that in the present embodiment, the respective elements arerealized as a server program independent of the video server and videoclient. The independent server program (a program which runs on a serverdevice) will be referred to as a “conversion server”.

[0054] First, the outline of the operation of the conversion server willbe described with reference to FIG. 2. Video servers 201 to 203 areprograms which operate on, e.g., a general-purpose device such as apersonal computer. Each general-purpose device is connected to a storagedevice containing video information and a video camera for obtaining alive video image. If the video information is required, the serverdelivers video information onto a network 207. Further, video clients204 to 206 operate on a device such as a personal computer. Each videoclient is started by a user, then functions as a client, receives videodata and displays the video data.

[0055] In the video delivery system which has been proposed by thepresent assignee, the video server and the video client performcommunication via the network 207 to perform services. For example, whenthe video client 204 makes a connection with the video server 201 andtransmits a video acquisition request message, the video server 201starts transmission of video data to the video client 204. The videoclient 204 displays the received video data on a display or the like.

[0056] In the present embodiment, a conversion server 208 is providedbetween the video servers and the video clients. The conversion server208 converts video data transmitted from the video servers 201 to 203via the network 207 into an HTTP message (HTTP is described in detailedin RFC (Request For Comments)1945) then transmits the message to all orany of the video clients 204 to 206.

[0057] The basic operation of the present embodiment using theconversion server 208 is as follows.

[0058] First, the video acquisition request from the video client 204 istransmitted to the conversion server 208 in place of the video server201. The video acquisition request is transmitted in HTTP messageformat. The conversion server 208 converts the HTTP message into amessage of a format unique to the video server 201. The converted videoacquisition request message is transferred to the video server 201, andthe video server 201 performs processing in accordance with the request.For example, if the video server is “VDOLive”, the video server startsto output a video stream, or if the video server is “WebView/Livescope”(a trademark by Canon Kabushiki Kaisha), the video server transmitsvideo data for only one frame.

[0059] The result of processing by the video server is transmitted inthe data format of Motion JPEG, MPEG or the like, to the conversionserver 208. The conversion server 208 converts the video data into anHTTP message and sends the message to the video client 204. Note thatthe conversion to HTTP is made by adding information on data type, datasize, date and the like to the original data.

[0060] Next, the respective elements of the conversion server will bedescribed with reference to FIG. 1.

[0061] In FIG. 1, programs, which function as the conversion server, thevideo server and the video client, operate on three computers 101 to103. The computers 101 to 103 are interconnected via a network 104 andcan mutually transmit/receive a message. FIG. 1 only shows one videoclient and one video server, however, actually, a plurality of videoclients and video servers are used as shown in FIG. 2. Further, thenumber of the video servers and that of the video clients do not poseany limitation on the present invention.

[0062] The computer 101 is provided with a secondary storage device suchas a hard disk 108 for storing various program files of the conversionserver. Further, the computer 101 includes a CPU 105 for actuallyperforming the processing by the conversion server and a main memory 107for holding an execution image (a program code and various data andtable and the like used in the conversion) by the conversion server 109.The CPU 105 and the main memory 107 are connected via a bus 106.

[0063] A conversion server 109 consists of a group of software modulesas follows. Note that “software module” means a set of data, a series ofprocedures and a group of functions generated by a program language suchas C and C++. The software module has a function or procedure as aninterface for cooperation with another software module. The interfacingfunction or procedure is referred to as an “entry point” here. To callanother module, it is necessary to somehow obtain the memory address ofthe entry point of the module to be called. Generally, the addressinformation of an entry point can be obtained upon compilation orlinkage time.

[0064] (The software modules)

[0065] a message transceiver 110

[0066] a message interpreter 111

[0067] a client session manager 112

[0068] a server information manager 113

[0069] Further, the conversion server 109 includes a processing module114 corresponding to the type of a specific video server to communicatewith the conversion server 109. Although FIG. 2 shows only oneprocessing module 114, however, actually, a plurality of processingmodules for plurality of servers may be provided.

[0070] The processing module 114 performs processing regarding thecommunication method or message format unique to the specific videoserver to communicate with the conversion server 109. The processingmodule 114 further includes the following submodules:

[0071] a server session manager 115

[0072] an information deliverer 116

[0073] a video deliverer 117

[0074] a message transceiver 118 for the specific server

[0075] Next, the outline of the modules and submodules 110 to 118 willbe described.

[0076] [Message transceiver 110]

[0077] The message transceiver 110 provides other module and submodulewith means for receiving a message transmitted from the video server 102and the video client 103 via the network 104. Further, the messagetransceiver 110 provides other module and submodule with means fortransmitting a reply message or the like to the video server 102 and thevideo client 103.

[0078] The message transceiver is realized by utilizing a generalinterprocess communication protocol, TCP (Transmission Control Protocol)or UDP (User Datagram Protocol) or the like using a socket or the like.Note that some type of video server requires a specific communicationmethod or protocol such as RTP (Realtime Transfer Protocol). For suchvideo server, a message transceiver 118 for the server is added to theprocessing module 114, and the function of the message transceiver 118is utilized. The message transceiver 110 is used for communication withthe video client 103 or communication with a video server which does notrequire a specific communication method.

[0079] Note that the present Web browser performs communication based onthe HTTP protocol on the TCP protocol, however, a differentcommunication method might be employed in the future. In such case, a“message transceiver” for a specific video client in correspondence withthe type of the client can be prepared. The message transceiver for theclient can be realized and controlled in the same way as that for themessage transceiver for the server.

[0080] [Message Interpreter 111]

[0081] The message interpreter 111 interprets various messages(hereinafter referred to as “requests” or “request messages”)transmitted from a video client and instructs other modules to performcorresponding processing. Each request message includes a message ID todiscriminate the request type. The messages interpreted by the messageinterpreter 111 are:

[0082] a session start request

[0083] a session termination request

[0084] a video acquisition request

[0085] an information acquisition request

[0086] The respective requests will be described later.

[0087] [Client Session Manager 112]

[0088] The client session manager 112 provides means for “absorbingdifference between communication methods” as described above. Morespecifically, for obtaining correspondence between connection with thevideo client 103, disconnected for each communication, and connectionwith the video server 102, maintained by the end of service, the clientsession manager 112 allots a unique ID number to each video client uponthe first connection establishment between the video client and theconversion server. Thereafter, when the video client sends a request tothe conversion server 101, the ID number (connection ID) is added to therequest. By this arrangement, even though the connection between thevideo client and the video server is disconnected for eachcommunication, the correspondence between the video server thattransmits video data and the video client that receives the video datacan be maintained. The connection ID can be regarded as virtualconnection which continues between the video client 103 and theconversion server 101. This virtual connection will be called a“session”.

[0089] The above processing can be easily realized by managing thecorrespondence between the connection ID's and corresponding videoservers in the form of a table.

[0090] [Server Information Manager 113]

[0091] The server information manager 113 is a module to manage entrypoints to the processing module(s) 114. For example, regarding a sessionstart request from the video client 103, the server information manager113 searches for an entry point of a necessary processing module for aspecific server, with the type information of the specific video serveradded to the request as a key. Thus, the obtained processing moduletakes over the control, to execute actual processing such as sessionstarting processing.

[0092] The above processing by the server information manager 113 can berealized by using a table containing entry points to processing modulesas its values, with video-server type information (for example, acharacter string such as “WebView/Livescope Ver1.10”) as a key.

[0093] Further, in a case where the conversion server is realized on anOS providing dynamic link means, the processing modules may be providedas files apart from the conversion server, and necessary processingmodule(s) may be automatically read when starting the conversion server.The server information manager 113 also has this function. Note thatthis processing is not essential in the present invention. In thepresent embodiment, the conversion server includes necessary processingmodule(s) in advance.

[0094] [Server Session Manager 115]

[0095] When the conversion server 109 receives a session start requestand a session termination request from the video client 103, the serversession manager 115 generates session-start and session-terminationrequest messages unique to the video server (102 in FIG. 1), and executesession starting processing and session terminating processing to startand terminate the session with the video server.

[0096] Note that the server session manager 115 establishes only oneconnection (hereinafter the connection with the video server will bereferred to as a “server session”) even if a plurality of video clientssend a session start request to the same video server. When the serversession manager 115 receives a session start request, it first checkswhether or not a requested server session with a corresponding videoserver has been established already. If the server session has not beenestablished yet, the server session manager 115 newly establishes aserver session with the video server.

[0097] Note that if video transfer requests to one video server arereceived from a plurality of clients, the conversion server performmediation and transmit video data from the video server to therespective clients.

[0098] [Video Deliverer 117]

[0099] When the video deliverer 117 receives a video acquisition requestfrom the video client 103, it issues a video acquisition request for thevideo server 102, and obtains latest video data from the video server102. Note that if the video server periodically transmits videoinformation, the video deliverer 117 obtains latest video data withoutissuing video acquisition request.

[0100] The obtained video data is stored in a video buffer in the videodeliverer 117. Regarding video acquisition requests from a plurality ofvideo clients “approximately simultaneously received” by the conversionserver 109, the video data in the video buffer can be transmitted to thevideo clients. In this manner, the number of communications with thevideo server can be reduced, and the execution efficiency can beimproved.

[0101] Note that to process the “approximately simultaneously received”video acquisition requests,

[0102] (1) requests arrived within a predetermined period are regardedas simultaneously arrived requests; or

[0103] (2) all the requests arrived from the start to the end of videoacquisition request processing are regarded as simultaneously arrivedrequests. In the present embodiment, a client that issues a videoacquisition request at the highest speed is used as a reference client.In this method, during a period between the point where the client 1issues a video acquisition request (request 1) to the point where theclient 1 issues the next video acquisition request (request 2), videoacquisition requests sent from other clients are regarded as“approximately simultaneously received”, and video data in the videobuffer obtained from the video server by the request 1 is transmitted tothe clients.

[0104] [Information Deliverer 116]

[0105] The video server, proposed by the present assignee, to servevideo images obtained by a camera provides means for obtaining not onlyvideo data but also information on the status of the video server orinformation on the network 104. The video client obtains necessaryinformation by issuing an information acquisition request to the videoserver.

[0106] Further, some type of video servers have a function toautomatically notify their server status even if the video client doesnot issue any request. For example, the server WebView/Livescope foroperation of a remote video camera, automatically notifies every changein the direction and zooming of the camera to all the video clients. Asthe server information or notification information is common to theplurality of video clients, buffering similar to that of video data isperformed.

[0107] The information deliverer 116 performs acquisition of serverinformation and notification information from a video server anddelivery processing by buffering. Especially, regarding a video serverhaving a notification function, information once stored in the buffer iseffective until a new change is notified from the video server. In thiscase, information requests from the video clients, received during aperiod from a point where the server information is stored into thebuffer to a point where new server information is stored into thebuffer, can be processed very quickly without inquiring of the server.

[0108] [Message Transceiver 118]

[0109] The message transceiver 118 is a transmission/reception modulefor a specific server. The message transceiver 118 has the same has afunction similar to that of the server message transceiver 110. Further,if the processing module 114 does not require a transmission/receptionmodule for a specific server, the message transceiver 118 is realized asa module to call the function of the server message transceiver 110.

[0110] Next, a communication protocol between the video client 103 andthe conversion server 109 will be briefly described. the video client103 transmits the following requests to the conversion server 109 tocause the conversion server to perform necessary processing.

[0111] Session operation

[0112] OpenCameraServer

[0113] CloseCameraServer

[0114] Image acquisition

[0115] GetLiveImage

[0116] Information acquisition

[0117] GetNotice

[0118] GetVideoInfo

[0119] Camera operation

[0120] OperateCamera

[0121] GetCameraControl

[0122] GetCameraInfo

[0123] The respective requests are based on the HTTP 1.0. protocol theserequests are transmitted as GET commands generated from URL (UniversalResource Locator) format data to be described later to the conversionserver. (Note that the HTTP 1.0 protocol, URL's, and the conversion froma URL to a GET command are explained in detail in the RFC 1945).

[0124] In the present embodiment, the HTTP protocol is not necessarilyused as a protocol between the video client and the video server, but aspecific message method or protocol may be used. However, in such case,the video client might not be realized by a general function of the Webviewer. In use of FTP, SMTP (Simple Mail Transfer Protocol) and thelike, the above problem does not occur, therefore, these protocols canbe employed for the HTTP protocol. In this case, necessary processingcan also be realized by the following method. Hereinbelow, the purposeof the respective requests and URL formats of the requests, and theformats of replies to the requests will be given.

[0125] OpenCameraServer

[0126] [Purpose] To start session with a video server

[0127] [Format]

[0128] http://<host name of conversion server>:<portnumber>/OpenCameraServer?

[0129] vc_host=<host name of video server>&

[0130] vc_host=<port number of video server>&

[0131] server_type=<type of video server>

[0132] If information on the video server is necessary besides the aboveinformation (host name of video server, port number and type of videoserver), arbitrary information in the following format may be added.

[0133] <name of additional information>=<value of additionalinformation>

[0134] —Example—

[0135] cc_host=<host name of camera control server>

[0136] [Reply] If processing was successful, a connection ID is returnedto the video client in the following format.

[0137] HTTP/1.0 200 OK

[0138] <additional information such as data type, date and data size>

[0139] connection_id=<connection ID>

[0140] CloseCameraServer

[0141] [Purpose] To terminate session with a video server.

[0142] [Format]

[0143] http://<host name of conversion server>:<portnumber>/CloseCameraServer?

[0144] connection_id=<connection ID>

[0145] [Reply] If processing was successful, a character string “OK” isreturned.

[0146] GetLiveImage

[0147] [Purpose] To request acquisition of video data.

[0148] [Format]

[0149] http://<host name of conversion server>:<portnumber>/GetLiveImage?

[0150] connection_id=<connection ID>&

[0151] frame_count=<number of frames>

[0152] At frame_count, an integer “1” or greater is set. The client canreceive video data for the designated number of frames.

[0153] [Reply] Video data for the designated number (set at frame_count)is returned. Note that the format of reply in a case where the number offrames is “1” is somewhat different from that in a case where the numberof frames is “2” since video data for two or more frames is transmittedby the Serverpush format (described in detail in the RFC 1945).

[0154] A. In a case where the number of frames is “1”

[0155] HTTP/1.0 200 OK

[0156] <additional information such as data type, date and data size>

[0157] <video information>

[0158] B. In a case where the number of frames is “2” or greater

[0159] HTTP/1.0 200 OK

[0160] <additional information such as data type, date and data size>

[0161] Content-type:multipart/

[0162] x-mixed replace;boundary=JointServerImage——JointServerImage

[0163] Content-Length:<data length for 1 frame>

[0164] Content-type:<data type for 1 ; frame>

[0165] <video information for 1 frame>

[0166] ——JointServerImage

[0167] . . .

[0168] . . .

[0169] ——JointServerImage——

[0170] GetNotice

[0171] [Purpose] To obtain content of latest notification from videoserver.

[0172] [Format]

[0173] http://<host name of conversion server>:<port number>/GetNotice?

[0174] commenction_id=<connection ID>

[0175] [Reply] Only if the video server as the destination of serversession has a function to automatically transmit a notification message,a reply in the following format can be obtained.

[0176] HTTP/1.0 200 OK

[0177] <additional information such as data type, date and data size>

[0178] . . .

[0179] <name of information>=<value of information>

[0180] For example, in case of WebView/Livescope, as the change in thedirection of a video camera is notified from the video server, thefollowing reply can be obtained:

[0181] HTTP/1.0 200 OK

[0182] . . .

[0183] pan=<horizontal direction of video camera>

[0184] tilt=<vertical direction of video camera>

[0185] zoom=<zooming>

[0186] The information obtained as above differs depending on the typeof video server.

[0187] GetvideoInfo

[0188] [Purpose] To obtain video related information

[0189] [Format]

[0190] http://<host name of conversion server>:<portnumber>/GetVideoInfo?

[0191] connection_id=<connection ID>

[0192] [Reply] Although the type of information differs depending on thetype of video server, information in the following format is returned.

[0193] HTTP/1.0 200 OK

[0194] <additional information such as data type, date and data size>

[0195] . . .

[0196] <name of information>=<value of information>

[0197] . . .

[0198] In a general video server, the following information can beobtained:

[0199] image_width=<lateral length of video data>

[0200] image_height=<vertical length of video data>

[0201] compression_type=<compression method for video data>

[0202] frame_rate=<frame rate>

[0203] GetCameraInfo

[0204] [Purpose] To obtain video-camera related information.

[0205] [Format]

[0206] http://<host name of conversion server>:<portnumber>/GetCameraInfo?

[0207] connection_id=<connection ID>

[0208] [Reply] Only if the video server can remote-operate a videocamera, a reply in the following format can be obtained.

[0209] HTTP/1.0 200 OK

[0210] <additional information such as data type, date and data size>

[0211] . . .

[0212] <name of information>=<value of information>

[0213] . . .

[0214] For example, in case of WebView/Livescope, as the change in thedirection of a video camera is notified from a video server, thefollowing reply can be obtained.

[0215] HTTP/1.0 200 OK

[0216] . . .

[0217] pan_left_limit=<operation limit in leftward direction>

[0218] pan_right_limit=<operation limit in rightward direction>

[0219] pan_current_value=<current position in horizontal direction>

[0220] tilt_up_limit=<limit in upward direction>

[0221] tilt_down_limit=<limit in downward direction>

[0222] tilt_current_value=<current position in vertical direction>

[0223] zoom_wide_limit=<limit of zooming>

[0224] zoom_tele_limit=<limit of zooming>

[0225] zoom_current_value=<zoom current value>

[0226] GetCameraControl

[0227] [Purpose] To request camera control right.

[0228] [Format]

[0229] http://<host name of conversion server>:<portnumber>/GetCameraControl?

[0230] connection_id=<connection ID>

[0231] [Reply] Only if the video server can remote-operate a videocamera, a character string OK can be received.

[0232] OperateCamera

[0233] [Purpose] To request video camera operation.

[0234] [Format]

[0235] http://<host name of conversion server>:<portnumber>/OperateCamera?

[0236] connection_id=<connection ID>&

[0237] pan=<designation of horizontal direction>&

[0238] tilt=<designation of vertical direction>&

[0239] zoom=<designation of zooming>

[0240] [Reply] Only if the video server can remote-operate a videocamera, a character string “OK” can be received.

[0241] Next, the flow from the start to the end of session between thevideo client and the conversion server by using the above-describedrequests will be described. The flow divides into the following fivephases.

[0242] 1. Start of session

[0243] 2. Acquisition of video data

[0244] 3. Acquisition of information

[0245] 4. Camera operation

[0246] 5. Termination of session

[0247] Note that the “camera operation” phase is available only in asession with a camera-operating video server such as WebView/Livescope.

[0248] 1. Start of session

[0249] When the video client transmits the OpenCameraServer request tothe conversion server, a session with the video server starts. As areply to the OpenCameraServer request, a connection ID allotted to thevideo client is returned. The connection ID is used in all thesubsequent requests.

[0250] 2. Acquisition of video data

[0251] When the video client transmits the GetLiveImage request to theconversion server, the video client can obtain video data as a reply tothe request.

[0252] 3. Acquisition of information

[0253] When the video client transmits the GetVideoInfo request to theconversion server, the video client can obtain information on videosize, frame rate and the like, as a reply to the request.

[0254] 4. Camera operation

[0255] Camera operation is made by the following procedure. First, thevideo client requests a camera operation right by the GetCameraControlrequest. If the video client obtains the camera operation right, thevideo client sends the OperateCamera request to the conversion server,and operates the camera.

[0256] Note that the camera operation right, i.e., a right to change acamera angle (pan angle, tilt angle, zooming and the like) is owned byonly one client for each camera (except a case where a plurality ofcameras are connected to a video server). The camera operation right isprovided in several methods already proposed by the present assignee. Inthis embodiment, the operation right is provided to a first-connectedclient for a predetermined period, prior to other clients.

[0257] 5. Termination of session

[0258] When the video client transmits the CloseCameraServer request tothe conversion server, the conversion server terminates the session withthe video server used by the client, and invalidates the connection ID.To obtain video data again, the video client must issue theOpenCameraServer request again to establish connection.

[0259] Next, the operations of the respective elements in the basicoperation of the conversion server will be described.

[0260] <1. Start of session>

[0261] First, the session starting processing will be described withreference to FIG. 3 showing the concept of operation and the flowchartof FIG. 7.

[0262] When a video client 303 transmits the session start request(OpenCameraServer, 319) and a message transceiver 310 receives therequest (step S701), the received request is transferred to a messageinterpreter 311 (step S702). The message interpreter 311 extracts amessage ID from the transferred session start request 320 (step S703).

[0263] The message ID in the present embodiment is a request nameportion of a request except a parameter portion. In the session startrequest, the message ID is the character string “OpenCameraServer”. Themessage interpreter 311 compares a group of messages pre-stored in ahard disk or the like with the received message name, and determineswhat request has been transmitted. As a result, if the request is not asession start request (step S704), processing with respect to anotherrequest is performed (step S705).

[0264] If the received request is a session start request (step S704),the type, host name and port number of server, added as parameters tothe session start request are extracted from the request. If additionalinformation unique to a specific video server is added to the request,that portion is also extracted as a pair of parameter name and value(step S706).

[0265] Next, the message interpreter 311 issues a session startinstruction (or command) (321) to a client session manager 312 (stepS707). The extracted parameters are added to the session startinstruction. The session start instruction (321) is realized by amessage in an object-oriented language such as C++.

[0266] The client session manager 312 receives the session startinstruction (321), then first allots a connection ID to the video client303 (step S708). The connection ID is an integer “1” or greater, and thevalue of the connection ID is incremented for each allotment (othermethods may be employed as long as a unique ID is allotted to eachclient). The allotted connection ID is transmitted via the messagetransceiver 310 to the video client (step S709). Further, the clientsession manager 312 issues a processing module acquisition instruction(322) to the server information manager 313 (step S710).

[0267] The server information manager 313 searches a table pre-stored ina storage device for a processing module for the server (302 in FIG. 3),with the server type information added to the processing-moduleacquisition instruction (322) as a key (step S711). The entry point ofthe processing module obtained as a result of search is notified as areply (323) to the processing-module acquisition instruction to theclient session manager 312.

[0268] Next, the client session manager 312 issues an instruction toestablish a session with the server (server session start instruction,324) via the entry point of the obtained processing module 314 to aserver session manager 315 (step S712). The server session manager 315receives the server session formation instruction (324), extracts thehost name, the port number of the server and other specific additionalinformation added to the instruction (324), searches its internalmanagement table with these information as keys, and checks whether ornot a session with the server has been established already. If thesession has been established (step S713), the server session manager 315returns the address of the session (more exactly, data structurerepresenting the session) to the client session manager 312. The clientsession manager 312 adds the obtained session information to the entryin the management table obtained with the connection ID as the key (stepS714).

[0269] Further, if the session has not been established yet (step S713),the server session manager 315 executes server-session startingprocessing including establishment of connection with the video server302 (step S715) and transmission of a session start request message(327) to the video server 302 (step S716), by using the server messagetransceiver 316. When the session with the video server 302 is started,the information on the session (mainly including information necessaryfor communication with the video server such as socket) is collected andserver session information is generated, and the information is returnedto the client session manager 312. The client session manager 312 addsthe received session information to the entry with the connection ID asthe key in the internal management table.

[0270] Then, the session starting processing ends.

[0271] <2. Termination of session>

[0272] Next, the session termination processing will be described withreference to FIGS. 4 and 8.

[0273] When a video client 403 issues a session termination request(CloseCameraServer, 419), and a message transceiver 410 receives therequest (step S801), the received request is transferred to a messageinterpreter 411 (step S802). The message interpreter 411 extracts amessage ID from the transferred session termination request (420). Themessage interpreter 411 compares the message name with the message namesof the respective requests, and determines what request has beentransmitted (step S803). As a result, if the received request is not asession termination request (step S804), processing with respect toanother request is performed (step S805).

[0274] If the received request is a session termination request (stepS804), a connection ID added as a parameter to the session terminationrequest is extracted (step S806).

[0275] Next, the message interpreter 411 issues a session terminationinstruction (421) to a client session manager 412 (step S807). Theclient session manager 412 receives the instruction (421), and extractssession information from its own management table with the connection IDas a key (step S808). Then, the client session manager 412 deletes theentry from the management table (step S809).

[0276] Then, the client session manager 412 examines how many entrieswith connection ID's having the value of the session informationextracted at step S808 are registered in the management table (stepS810). The examination may be made by counting the number of registeredentries of the same session information by searching the table values,or by managing a reference count with server session information. In anycase, if the session information other than the deleted entry with theconnection ID (step S811) are referred to, the client session manager412 notifies the video client (403) of the completion of the sessiontermination processing by using the message transceiver 410 (step S815)since further processing is not necessary.

[0277] Further, if the session information is not shared by other videoclient(s) (step S811), the client session manager 412 issues aserver-session termination instruction (422) to a server session manager415 (step S812). The server session manager 415 performs server-sessiontermination processing including transmission of a session terminationrequest (425) to a video server 402 (step S813) via a transceiver 416for the video server 402. Finally, the server session manager 415disconnects the connection with the video server 402, and notifies thevideo client 403 of the completion of the processing (step S815).

[0278] Thus, the session termination processing is completed.

[0279] <3. Acquisition of video data>

[0280] Next, video acquisition processing will be described withreference to FIGS. 5 and 9.

[0281] When a video client 503 issues a video acquisition request(GetLiveImage, 519), and a message transceiver 510 receives the request(step S901), the received request is transferred to a messageinterpreter 511 (step S902). The message interpreter 511 extracts amessage ID from the transferred video acquisition request (510) (stepS903). The message interpreter 511 compares the message name withmessage names of the respective requests to check what request has beentransmitted (step S903). As a result, if the received request is not avideo acquisition request (step S904), processing with respect toanother processing is performed (step S905).

[0282] If the received request is a video acquisition request (stepS904), a connection ID added as a parameter to the request is extracted(step S906). Next, the message interpreter 511 issues a videoacquisition instruction (521) to a client session manager 512 (stepS907). The client session manager 512 receives the instruction (521),and extracts server session information from its management table withthe connection ID as a key (step S908). Further, the client sessionmanager 512 transfers the video acquisition instruction (522) to a videodeliverer 517 (step S909).

[0283] The video deliverer 517 first examines its video data buffermanaged by the video deliver 517 itself to determine whether or not thelatest video data is held there. In the present embodiment, sequentialnumbers are allotted to the respective video data for the aboveexamination. That is, each time video data is registered in the buffer,a number is allotted to the data. Further, the number of referred videodata is managed for each video client with session information in themanagement table of the client session manager 512. If video data with anumber greater than that of video data last referred to for the clientis registered in the buffer, the video image can be regarded as thelatest video image.

[0284] If it is determined as a result of the examination of the bufferthat the content of the buffer is the latest video image (step S910),the video deliverer 517 returns the video data in the buffer to thevideo client 503 via the message transceiver 510 (step S914). If thenumber allotted to the video data in the buffer is the same as that ofthe last referred video data, it is determined that the content of thebuffer is not the latest (step S910). Then, the video deliverer 517performs video acquisition processing including sending a videoacquisition request 525 to a video server 502 via a message transceiver516 for the video server 502 (step S911). When the latest video data isobtained from the video server 502 (step S912), the video deliverer 517rewritten the content of the buffer with the new video data (step S913),and returns the video data in the buffer via the message transceiver 510to the video client 503 (step S914).

[0285] Thus, the video acquisition processing is completed. In thepresent embodiment, a number is allotted to the video data, and further,the number of video data last referred to for each client is stored. Bythis arrangement, regarding a client which operates at the highestspeed, as the number of video data in the buffer coincides with that oflast referred video data, the video data in the buffer is updated. Thatis, the video data in the buffer is updated by the fastest client.Further, regarding other slower clients, as the number of last referredvideo data is less than that of video data in the buffer, the video datain the buffer is returned to those clients.

[0286] <4. Acquisition of information>

[0287] Information acquisition processing is realized by performingprocessing, similar to the video acquisition processing by the videodeliverer in FIG. 5, by an information deliverer. Similar to themanagement of video data, the latest information is managed in a bufferof the information deliverer, so that the number of communications witha video server can be reduced.

[0288] <5. Camera operation>

[0289] In the internal processing in the conversion server, to operate acamera, a request (camera operation request) is transmitted andinformation on the status of the camera is returned. Therefore, thecamera operation can be handled by the same method as that for theinformation acquisition.

[0290] As described above, the conversion server of the presentinvention includes:

[0291] a message transceiver between a video client and a video server

[0292] a message transceiver for a specific video server

[0293] a client session manager for managing connection with a videoclient

[0294] a video deliverer for obtaining video data from a video serverand delivering the video data to a plurality of video client

[0295] an information deliverer for obtaining various information from avideo server and delivering the information to a plurality of videoclients

[0296] a server information manager for changing a method for issuing arequest message and a reply in accordance with a video server

[0297] a server session manager for executing issuance of a requestmessage and a reply in correspondence with a video server

[0298] Accordingly, the present embodiment utilizing the HTTP protocolas a protocol between a conversion server and the video client providesvideo service to even a video client protected by a fire-wall system ina network.

[0299] Further, in the present embodiment, by utilizing the HTTP GETcommands in a protocol between the conversion server and the videoclient, a video client can obtain and display video data withoutextending a Web browser.

[0300] <Second Embodiment>

[0301] Next, a second embodiment will be described as an example wherethe group of substitutional execution means and the group of efficiencyimprovement means in the above first embodiment are realized as a serverindependent of the group of switching means. More specifically, theprocessing module for a specific server in the same server program inthe first embodiment is realized as a server program independent of theconversion server. This server as the processing module will be referredto as a “subconversion server”.

[0302] First, the operation of the second embodiment will be describedwith reference to FIG. 10. In FIG. 10, video servers 1001 to 1003 andvideo clients 1004 to 1006 are interconnected via a network 1007,similar to the video servers and video clients in FIG. 2. However, thesecond embodiment provides a plurality of conversion servers 1008 to1010, and a plurality of subconversion servers 1011 to 1013,respectively connected to the network 1007. The video clients 1004 to1006 perform communication with the conversion servers 1008 to 1010, andthe video servers 1001 to 1003 establish sessions with the subconversionservers 1011 to 1013.

[0303] In the second embodiment, even though the plurality of conversionservers are provided, the subconversion servers may be provided incorrespondence with the types of video servers. For example, in a casewhere the subconversion server 1011 for the video server 1001 operates,the subconversion server 1011 can be commonly used by the conversionservers 1008 to 1010 for communication with the video server 1001.Further, as the video client can use any of the conversion servers 1008to 1010, the video client can select the most convenient conversionserver in correspondence with the status of the network 1007 and thelike.

[0304] Next, the respective elements of the second embodiment will bedescribed with reference to FIG. 6. In FIG. 6, the CPU and the mainmemory in FIG. 1 are omitted, however, the elements of the presentembodiment operate on a computer (including a general-purpose devicesuch as a personal computer), therefore, description will be made on thepremise that a CPU, a main memory, a bus, a secondary storage devicesuch as a hard disk are also provided in the present embodiment.Further, FIG. 6 only shows one video client 603 and one video server 602connected via a network 620, however, actually, a plurality of videoclients and video servers are connected to the network 620, as describedin FIG. 1.

[0305] The respective elements of the second embodiment divide into aconversion server 604 and a subconversion server 605. The number ofthese servers may be increased as shown in FIG. 10.

[0306] First, the conversion server 604 has the following modules:

[0307] a message transceiver 606

[0308] a message interpreter 607

[0309] a client session manager 608

[0310] a server information manager 609

[0311] a data base interface 610

[0312] The modules 606 to 609 play the same roles and perform the sameoperations as those of the corresponding modules in FIG. 1. The database interface 610 added to the construction of the present embodimentis a relational data base to utilize the function of a data-basemanagement system 601. Note that the data base is of any type in thepresent embodiment.

[0313] For example, the second embodiment can be realized by using anobject-oriented data base as the data-base management system 601. In theclient session manager and the server information manager of the firstembodiment, the management of connection ID or the like is realized byusing an internal table. On the other hand, data management and searchfunctions of the second embodiment are provided by the data-basemanagement system 601.

[0314] Further, the server manager of the first embodiment manages entrypoints to processing modules for specific servers, while the servermanager 609 of the second embodiment manages information such as hostnames, port numbers and sockets necessary for communication with thesubconversion server.

[0315] Next, the subconversion server 605 will be described. Thesubconversion server 605 comprises the following modules:

[0316] a message transceiver 611

[0317] a server session manager 612

[0318] a message transceiver 613 for a specific server

[0319] an information deliverer 614

[0320] a video deliverer 615

[0321] a data base interface 616

[0322] The modules 612 to 615 play the same roles and perform the sameoperations as those of the corresponding modules in FIG. 1. Further, themessage transceiver 611 is mainly used for communication with theconversion server 604. The message transceiver 611 has a functionsimilar to that of the message transceiver 606 in the conversion server604. Further, the subconversion server 605 has a data base interface616. The contents of the buffers in the video deliverer and informationdeliverer are managed by the data-base management system 601, and sharedby the plurality of subconversion servers and conversion servers.

[0323] As described above, many of the respective elements of the secondembodiment have the same functions and the perform almost the sameoperations as those of the corresponding elements of the firstembodiment.

[0324] Accordingly, only the difference in operation from the firstembodiment will be described below.

[0325] 1. Information managed by a table in the first embodiment ismanaged by a data base. Registration, deletion and search of data areexecuted by issuing a command to the data base interface.

[0326] 2. A part of instruction executed within the conversion server istransmitted/received as a request message via the network.

[0327] More specifically, such parts of instruction are as follows.

[0328] The session generation instruction (324) and the reply to theinstruction in FIG. 3.

[0329] The session termination instruction (422) and the reply to theinstruction in FIG. 4.

[0330] The video acquisition instruction (522) and the replay to theinstruction in FIG. 5.

[0331] In the above-described second embodiment, the conversion serverprovides

[0332] a message transceiver between a video client and a video server

[0333] a message transceiver for a specific server

[0334] a client session manager for management of connection with a thevideo client

[0335] a server information manager for switching the method of issuinga request message and a reply in accordance with a video server.

[0336] Further, the subconversion server provides

[0337] a video deliverer to obtain video data from a video server anddeliver the data to a plurality of video clients

[0338] an information deliverer to obtain various information from avideo server and deliver the information to a plurality of video clients

[0339] a server session manager for execution of issuance of a requestmessage and a reply in accordance with a video server.

[0340] Further, to realize the above respective modules by using thedata-base management module, a data base interface is added to theconversion server and the subconversion server.

[0341] According to the second embodiment,

[0342] 1) as the conversion server and the subconversion server areprovided, even if a video server of a new type is added, the new videoserver can be utilized from all the conversion servers and video clientsonly by operating one subconversion server corresponding to the videoserver; and

[0343] 2) as the data management is made by utilizing the databasemanagement system, various information and obtained video data areshared among the conversion servers and subconversion servers. By thisarrangement, even if a trouble occurs to some conversion server orsubconversion server, another server can operate for the server with thetrouble.

[0344] As described above, according to the first and secondembodiments, a remote video delivery system to serve a moving or stillvideo image to a computer at a remote place via a computer network,provides

[0345] message transmission/reception means for transmitting/receiving amessage from another program

[0346] message interpretation means for interpreting the message

[0347] connection management means for managing connection with a client

[0348] video delivery means for delivering obtained video data to aplurality of clients

[0349] information delivery means for delivering obtained variousinformation to a plurality of clients

[0350] delivery method switching means for switching the method forissuing a request message and a reply in accordance with a video server

[0351] delivery method execution means for executing issuance of arequest message and a reply in accordance with a video server.

[0352] Accordingly, the system has the following advantages.

[0353] 1) The difference in communication format between the videodelivery system and the World Wide Web system can be absorbed.

[0354] 2) The reduction in execution efficiency due to integration ofthe video client and a Web browser can be prevented.

[0355] 3) The difference in video delivery method for each video servercan be absorbed, and a general-purpose video client can be realized.

[0356] Note that as described above, in the first and secondembodiments, the conversion server and the subconversion server requirehardware for connection with the network, however, these servers can berealized by programs which run on general-purpose devices such aspersonal computers.

[0357] Accordingly, the object of the present invention can be alsoachieved by providing a storage medium storing program codes forperforming the aforesaid processes to a system or an apparatus, readingthe program codes with a computer (e.g., CPU, MPU) of the system orapparatus from the storage medium, then executing the program.

[0358] In this case, the program codes read from the storage mediumrealize the functions according to the embodiments, and the storagemedium storing the program codes constitutes the invention.

[0359] Further, the storage medium, such as a floppy disk, a hard disk,an optical disk, a magneto-optical disk, CD-ROM, CD-R, a magnetic tape,a non-volatile type memory card, and ROM can be used for providing theprogram codes.

[0360] Furthermore, besides aforesaid functions according to the aboveembodiments are realized by executing the program codes which are readby a computer, the present invention includes a case where an OS(operating system) or the like working on the computer performs a partor entire processes in accordance with designations of the program codesand realizes functions according to the above embodiments.

[0361] Furthermore, the present invention also includes a case where,after the program codes read from the storage medium are written in afunction expansion card which is inserted into the computer or in amemory provided in a function expansion unit which is connected to thecomputer, CPU or the like contained in the function expansion card orunit performs a part or entire process in accordance with designationsof the program codes and realizes functions of the above embodiments.

[0362] Further, the stream information service of the present inventionis applicable to any realtime information service handling operationdata, audio data and the like.

[0363] As described above, according to the present invention,information transmission can be performed between a server which servesinformation by its own communication format and a client which receivesservice on a general network, with an efficient and simple construction.

[0364] As many apparently widely different embodiments of the presentinvention can be made without departing from the spirit and scopethereof, it is to be understood that the invention is not limited to thespecific embodiments thereof except as defined in the appended claims.

What is claimed is:
 1. A relay apparatus for transferring informationfrom at least one server to at least one client via a network, saidserver performing stream information service in its own informationtransmission format, said apparatus comprising: first communicationmeans for performing communication with said client in a communicationmethod in correspondence with said client; second communication meansfor performing communication with said server in a communication methodin correspondence with said server; first conversion means forconverting a request message to said server, received via said firstcommunication means from said client, to a request message for saidserver; and second conversion means for converting information, receivedvia said second communication means from said server, to information ina format for said client.
 2. The relay apparatus according to claim 1,wherein said stream information service is service of moving videoinformation obtained by predetermined image pickup means.
 3. The relayapparatus according to claim 1, wherein said first communication meansincludes delivery means for executing transmission of a reply to saidclient in accordance with said server.
 4. The relay apparatus accordingto claim 1, wherein said second communication means includes deliverymeans for executing transmission of a reply in accordance with saidclient.
 5. The relay apparatus according to claim 1, wherein said secondcommunication means and said first conversion means operateindependently of a server to be connected.
 6. The relay apparatusaccording to claim 1, wherein a request included in a protocol by saidfirst communication means and that included in a protocol by said secondcommunication means do not always one-to-one correspond with each other.7. The relay apparatus according to claim 1, wherein in a protocol bysaid first communication means, one reply is made to one request from aclient, while in a protocol by said second communication means, aplurality of replies are made to one request.
 8. The relay apparatusaccording to claim 1, wherein said second conversion means holdsinformation obtained by said second communication means, and when saidsecond conversion means receives a request from said client, said secondconversion means converts the information into information in a formatfor said client, thus removes difference between protocols which do notalways one-to-one correspond with each other.
 9. The relay apparatusaccording to claim 1, wherein a protocol by said first communicationmeans is the HTTP protocol.
 10. A system having a plurality of relayapparatuses claimed in claim
 1. 11. A relay apparatus, provided betweena server which serves stream data via a computer network and a client,for transmitting video data from said server to said client, comprising:message transmission/reception means for transmitting/receiving amessage from another program; message interpretation means forinterpreting the message; connection management means for managingconnection with a client; video delivery means for delivering obtainedvideo data to a plurality of clients; information delivery means fordelivering obtained various information to a plurality of clients;switching means for switching a method for transmitting a requestmessage and a reply in accordance with a video server; and executionmeans for executing transmission of a request message and a reply inaccordance with a video server.
 12. The relay apparatus according toclaim 11, wherein said respective means operate as programs.
 13. Therelay apparatus according to claim 11, wherein said video deliverymeans, said information delivery means, said delivery method executionmeans, said message interpretation means, said connection managementmeans, and said delivery method switching means operate as serverprograms different from each other.
 14. The relay apparatus according toclaim 12, further comprising message transmission/reception means for aspecific video server, in addition to said messagetransmission/reception means.
 15. The relay apparatus according to claim12, wherein the number of said video delivery means, that of informationdelivery means, and that of delivery method execution means are morethan one.
 16. The relay apparatus according to claim 13, whereininformation held by said connection management means, said videodelivery means and said information delivery means are managed by usingcommon management means such as a data-base management system.
 17. Therelay apparatus according to claim 11, wherein said video delivery meansalways holds latest video data by obtaining video data from a videoserver in accordance with a client which makes a video acquisitionrequest at a highest speed.
 18. The relay apparatus according to claim11, wherein said information delivery means always holds latest variousinformation by obtaining various information from a video server inaccordance with a client which makes a request for each information at ahighest speed.
 19. The relay apparatus according to claim 11, wherein aremote video relay system and its client perform communication with eachother by using the HTTP protocol.
 20. A relay-apparatus control methodfor controlling a relay apparatus for transferring information from atleast one server to at least one client via a network, said serverperforming stream information service in its own informationtransmission format, said method comprising: a first communication stepof performing communication with said client in a communication methodin correspondence with said client; a second communication step ofperforming communication with said server in a communication method incorrespondence with said server; a first conversion step of converting arequest message to said server, received at said first communicationstep from said client, to a request message for said server; and asecond conversion step of converting information, received at saidsecond communication step from said server, to information in a formatfor said client.
 21. A storage medium containing program codes, whichfunction as a relay apparatus for transferring information from at leastone server to at least one client via a network, said server performingstream information service in its own information transmission format,when read and executed by a computer, said program codes includesprogram codes which function as: first communication means forperforming communication with said client in a communication method incorrespondence with said client; second communication means forperforming communication with said server in a communication method incorrespondence with said server; first conversion means for converting arequest message to said server, received via said first communicationmeans from said client, to a request message for said server; and secondconversion means for converting information, received via said secondcommunication means from said server, to information in a format forsaid client.